1. Field of the Invention
The present invention relates to a balanced object striping method and system, and more particularly, to a method of a balanced object striping in a redundant array of inexpensive disks (RAID) system by managing data in units of objects, and a system therefor.
2. Description of the Related Art
Ordinary distributed storage can be performed by a striping method in which data is divided into units of a predetermined size, and striped in a plurality of storage devices. In this method, the number of the storage devices across which the data is striped is referred to as a stripe size, and the number of blocks stored in each device is referred to as a stripe element size. In a block redundant array of inexpensive disks (RAID) system, data is stored in predetermined units called blocks, and a logical block address is assigned to each block. According to a stripe size and a stripe element size, a logical block address is converted into a physical block address, and data is stored in a physical storage device.
An object-based storage device stores data in units of objects with arbitrary sizes unlike blocks of an identical predetermined size. Here, the size of one object can be variously defined from bytes to gigabytes. In order to store these objects, conventionally, objects are grouped and a storing method is changed according to the size of objects.
Here, an object is defined as a virtual object and a physical object. The virtual object is an object desired to be stored, and the physical object is an object generated in an object-based storage device in which the virtual object is actually stored. According to a storing method, a virtual object can be stored in one or more physical objects.
When a virtual object is stored, in relation to virtual objects which each have a size smaller than that of a stripe, a storage space corresponding to a stripe should be secured in each storage device regardless of whether or not actual data is stored. Accordingly, an overhead of the storage space may occur. In order to reduce this overhead, according to the conventional technology, if the size of an object desired to be striped is smaller than a stripe element size, the object is stored in physical objects of two storage devices in a mirroring method. If the size of this object later increases to be equal to or larger than a threshold size, the object is bound with another object with a similar size, to form a parity group, and then data and the parity are striped. Here, data migration is required in order to store the object, which is stored through mirroring, in a striping method.
In a data migration process, first, in order to store an object to be newly included in a parity group, a new object is generated in a storage device. If the object is generated, the data of the object is copied into the newly generated object, and with respect to the data included in the parity group, a parity is again calculated. Then, objects of storage devices in which data is previously stored are deleted.
However, when an object is stored through the data migration described above, if the size of each object is smaller than the stripe element size, the objects are concentrated in a first storage device forming stripes. Accordingly, when objects are accessed, input and output requests may be concentrated on a specific disk.